package pinpass;

import java.rmi.RemoteException;

import java.util.HashMap;

import org.orm.PersistentException;
import org.orm.PersistentTransaction;

import Validacion.*;

import orm.Coordenada;
import ormsamples.CreateAutentificacionData;
import ormsamples.CreateAutentificacionDatabaseSchema;
import ormsamples.DeleteAutentificacionData;

import codificacion.CodificarProxy;


public class PinPass {
	
		
	
	public String validarUsuario(String usuario, String clave){
		String resp2 = "";
	
	    Validacion validar = new Validacion();
	    
	    resp2 = validar.validar(usuario, clave);
	    
		
		return resp2;
	}
	
	public String validacion(String usuario,String valor, String clave){
	
		
		String resp = "";
		
	/*	HashMap PP = new HashMap();
	  
	    PP.put("A1","21");
		PP.put("B1","80");
		PP.put("C1","88");
		PP.put("D1","98");
		PP.put("E1","77");
		PP.put("F1","66");
		PP.put("G1","44");
		PP.put("H1","55");
		PP.put("I1","33");
		PP.put("J1","22");
		
		PP.put("A2","32");
		PP.put("B2","18");
		PP.put("C2","16");
		PP.put("D2","15");
		PP.put("E2","97");
		PP.put("F2","76");
		PP.put("G2","65");
		PP.put("H2","45");
		PP.put("I2","56");
		PP.put("J2","34");
		//
		PP.put("A3","10");
		PP.put("B3","26");
		PP.put("C3","21");
		PP.put("D3","43");
		PP.put("E3","59");
		PP.put("F3","91");
		PP.put("G3","62");
		PP.put("H3","42");
		PP.put("I3","17");
		PP.put("J3","12");
		
		PP.put("A4","99");
		PP.put("B4","11");
		PP.put("C4","31");
		PP.put("D4","73");
		PP.put("E4","40");
		PP.put("F4","50");
		PP.put("G4","89");
		PP.put("H4","61");
		PP.put("I4","37");
		PP.put("J4","42");
		
		PP.put("A5","98");
		PP.put("B5","19");
		PP.put("C5","41");
		PP.put("D5","23");
        PP.put("E5","30");
		PP.put("F5","20");
		PP.put("G5","92");
		PP.put("H5","86");
		PP.put("I5","35");
		PP.put("J5","27");
		*/
		codificacion.CodificarProxy obj = new CodificarProxy();
		
	/*	try {
			coordenada = obj.desencriptar(coordenada);
			coordenada2 = obj.desencriptar(coordenada2);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		
		coordenada = (""+(PP.get(coordenada)));
			
		
		if(coordenada.equals(coordenada2)){
			resp = "COORDENADAS VALIDAS";
			
		}
		else{
			resp = "COORDENADAS NO VALIDAS";
			
		}
		*/
		

		
		try {


			PersistentTransaction t = orm.CoordenadaPersistentManager.instance().getSession().beginTransaction();
			orm.DAOFactory lDAOFactory = orm.DAOFactory.getDAOFactory();
			orm.dao.UsuarioDAO lormUsuarioDAO = lDAOFactory.getUsuarioDAO();
			
			orm.Usuario lormUsuario = lormUsuarioDAO.loadUsuarioByQuery("nombre='" + usuario + "'", null);
			int aux = lormUsuario.getId_usuario();
			System.out.println(lormUsuario.getId_usuario());
			
//			orm.Usuario lormUsuario2 = lormUsuarioDAO.loadUsuarioByQuery();
			
//			System.out.println(lormUsuario2);
			
			
		    
//			orm.dao.TarjetaDAO lormTarjetaDAO = lDAOFactory.getTarjetaDAO();
//			orm.Tarjeta lormTarjeta = lormTarjetaDAO.loadTarjetaByQuery("id_tarjeta='" + aux + "'", null);
//			System.out.println(lormTarjeta.getCod_tarjeta());
			
			orm.dao.CoordenadaDAO lormCoordenadaDAO = lDAOFactory.getCoordenadaDAO();
		/*	orm.Coordenada lormCoordenada = lormCoordenadaDAO.loadCoordenadaByQuery("SELECT valor "+
					"FROM coordenada c "+
					"INNER JOIN tarjeta t ON t.id_tarjeta = 'c.tarjetaid_tarjeta' "+
					"INNER JOIN usuario cl ON cl.id_usuario = 't.usuarioid_usuario' "+
					"WHERE c.clave ='A1'", null);
			*/
			
			Coordenada[] lormCoordenada = lormCoordenadaDAO.listCoordenadaByQuery("tarjetaid_tarjeta='" + aux + "'", null);
			Coordenada lormCoordenada2 = lormCoordenadaDAO.loadCoordenadaByQuery("tarjetaid_tarjeta='" + aux + "'", null);
			HashMap PP = new HashMap();
			
			for (int i=0; i<50; i++){
			  PP.put(lormCoordenada[i].getClave(),lormCoordenada[i].getValor());	
			}
		    
			String aux2 = PP.get(clave) + "";
			
			if(aux2.equals(valor)){
				resp="Si";
			}else{
				resp="No";
			}
			
			
			
			
		   
		} catch (PersistentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
		
		return resp;
	}

}
